package org.hzero.order.domain.entity.dto;

/**
 * @author xiuiqng.Yang-Estelle-양수청
 * @date 2019/8/5 16:17
 */

import java.math.BigDecimal;
import java.util.Date;

import javax.persistence.Id;
import javax.validation.constraints.NotEmpty;

import com.fasterxml.jackson.annotation.JsonInclude;
import com.fasterxml.jackson.databind.annotation.JsonSerialize;
import org.hzero.boot.platform.lov.annotation.LovValue;
import org.hzero.export.annotation.ExcelColumn;
import org.hzero.export.annotation.ExcelSheet;
import org.hzero.order.infra.util.DecimalSerialize;

/**
 * 页面多条件封装类
 */
@ExcelSheet
@JsonInclude(JsonInclude.Include.NON_NULL)
public class OrderDTO {

    @Id
    @ExcelColumn(zh = "销售订单号", en = "order_number")
    private String orderNumber;

    private String companyNumber;

    @ExcelColumn(zh = "公司名称", en = "company_name")
    private String companyName;

    private String customerNumber;

    @ExcelColumn(zh = "客户名称", en = "customer_name")
    private String customerName;

    @NotEmpty
    @LovValue(lovCode = "HODR.HZORO_ORDER_STATUS-25044")
    @ExcelColumn(zh = "订单状态", en = "order_status")
    private String orderStatus;

    @ExcelColumn(zh = "订单日期", en = "order_date")
    private Date orderDate;

    @ExcelColumn(zh = "订单金额", en = "order_amount")
    @JsonSerialize(using = DecimalSerialize.class)
    private BigDecimal orderAmount;

    @ExcelColumn(zh = "行号", en = "line_number")
    private Integer lineNumber;

    @ExcelColumn(zh = "物料编码", en = "item_code")
    private String itemCode;

    @ExcelColumn(zh = "物料描述", en = "item_description")
    private String itemDescription;

    @ExcelColumn(zh = "产品单位", en = "order_quantity_uom")
    private String orderQuantityUom;

    @ExcelColumn(zh = "数量", en = "order_quantity")
    private BigDecimal orderQuantity;

    @ExcelColumn(zh = "销售单价", en = "unit_selling_price")
    private BigDecimal unitSellingPrice;

    @ExcelColumn(zh = "行金额", en = "line_amount")
    private BigDecimal lineAmount;

    @ExcelColumn(zh = "备注", en = "description")
    private String description;

    private String addition1;
    private String addition2;
    private String addition3;
    private String addition4;
    private String addition5;

    public String getCompanyName() {
        return companyName;
    }

    public OrderDTO setCompanyName(String companyName) {
        this.companyName = companyName;
        return this;
    }

    public String getCustomerName() {
        return customerName;
    }

    public OrderDTO setCustomerName(String customerName) {
        this.customerName = customerName;
        return this;
    }

    public String getOrderNumber() {
        return orderNumber;
    }

    public OrderDTO setOrderNumber(String orderNumber) {
        this.orderNumber = orderNumber;
        return this;
    }

    public String getItemCode() {
        return itemCode;
    }

    public OrderDTO setItemCode(String itemCode) {
        this.itemCode = itemCode;
        return this;
    }

    public String getOrderStatus() {
        return orderStatus;
    }

    public OrderDTO setOrderStatus(String orderStatus) {
        this.orderStatus = orderStatus;
        return this;
    }

    public Date getOrderDate() {
        return orderDate;
    }

    public void setOrderDate(Date orderDate) {
        this.orderDate = orderDate;
    }

    public BigDecimal getAmountMoney() {
        return orderAmount;
    }

    public void setAmountMoney(BigDecimal orderAmount) {
        this.orderAmount = orderAmount;
    }

    public BigDecimal getOrderAmount() {
        return orderAmount;
    }

    public void setOrderAmount(BigDecimal orderAmount) {
        this.orderAmount = orderAmount;
    }

    public Integer getLineNumber() {
        return lineNumber;
    }

    public void setLineNumber(Integer lineNumber) {
        this.lineNumber = lineNumber;
    }

    public String getItemDescription() {
        return itemDescription;
    }

    public void setItemDescription(String itemDescription) {
        this.itemDescription = itemDescription;
    }

    public String getOrderQuantityUom() {
        return orderQuantityUom;
    }

    public void setOrderQuantityUom(String orderQuantityUom) {
        this.orderQuantityUom = orderQuantityUom;
    }

    public BigDecimal getOrderQuantity() {
        return orderQuantity;
    }

    public void setOrderQuantity(BigDecimal orderQuantity) {
        this.orderQuantity = orderQuantity;
    }

    public BigDecimal getUnitSellingPrice() {
        return unitSellingPrice;
    }

    public void setUnitSellingPrice(BigDecimal unitSellingPrice) {
        this.unitSellingPrice = unitSellingPrice;
    }

    public BigDecimal getLineAmount() {
        return lineAmount;
    }

    public void setLineAmount(BigDecimal lineAmount) {
        this.lineAmount = lineAmount;
    }

    public String getDescription() {
        return description;
    }

    public void setDescription(String description) {
        this.description = description;
    }

    public String getCompanyNumber() {
        return companyNumber;
    }

    public void setCompanyNumber(String companyNumber) {
        this.companyNumber = companyNumber;
    }

    public String getCustomerNumber() {
        return customerNumber;
    }

    public void setCustomerNumber(String customerNumber) {
        this.customerNumber = customerNumber;
    }

    public String getAddition1() {
        return addition1;
    }

    public void setAddition1(String addition1) {
        this.addition1 = addition1;
    }

    public String getAddition2() {
        return addition2;
    }

    public void setAddition2(String addition2) {
        this.addition2 = addition2;
    }

    public String getAddition3() {
        return addition3;
    }

    public void setAddition3(String addition3) {
        this.addition3 = addition3;
    }

    public String getAddition4() {
        return addition4;
    }

    public void setAddition4(String addition4) {
        this.addition4 = addition4;
    }

    public String getAddition5() {
        return addition5;
    }

    public void setAddition5(String addition5) {
        this.addition5 = addition5;
    }
}
